/**
 * 
 */
package com.shelpe.services.sinbad.controller.dto;

import org.apache.commons.lang3.StringUtils;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.shelpe.services.sinbad.service.simbaproxy.SimbaProxyBaseDto;

import lombok.Data;

/**
 * 
 * DTO的基类
 * 
 * @author louxinhua
 *
 */
@Data
public class BaseDTO {

	/**
	 * @JsonProperty("msg") private String message; @JsonProperty("sub_code")
	 * private String subCode; @JsonProperty("sub_msg") private String
	 * subMessage;
	 */
	/**
	 * 这3个属性，主要是淘宝接口返回里面的
	 */
	@JsonProperty("msg")
	private String message;
	@JsonProperty("sub_code")
	private String subCode;
	@JsonProperty("sub_msg")
	private String subMessage;

	/**
	 * 错误码，与具体业务逻辑错误相关。<br/>
	 * 比如：<br/>
	 * -10， 用户已注册<br/>
	 * -100， 订单已关闭<br/>
	 * 文案提示可以用 errorMsg 变量<br/>
	 * 
	 * @since 2017-08-08
	 */
	@JsonProperty("error_code")
	private Integer errorCode;

	/**
	 * 系统用来自己用的错误信息。<br/>
	 * 
	 * @since 2017-08-08
	 */
	@JsonProperty("error_msg")
	private String errorMsg;

	public void form(SimbaProxyBaseDto.Error error) {
		this.message = error.getMessage();
		this.subMessage = error.getSubMessage();
		this.subCode = error.getSubCode();
		if (StringUtils.isNotBlank(error.getSubMessage())) {
			this.errorMsg = error.getSubMessage();
		} else {
			this.errorMsg = error.getMessage();
		}
	}

}
